iT邦幫忙

2025 iThome 鐵人賽

DAY 22
0
佛心分享-IT 人自學之術

從零開始的 Linux 世界系列 第 22

【Day.22】CA 是什麼?憑證授權為什麼很重要?

  • 分享至 

  • xImage
  •  

在講 TLS/HTTPS 的時候,常會看到「這個網站有由受信任的 CA 簽發的憑證」那 CA 到底是什麼?它為什麼很重要?今天就帶大家來看一下什麼是 Certificate Authority!

✒️ 什麼是 CA

CA(Certificate Authority)就是發行 X.509 憑證的「憑證發行機構」,它負責簽章並背書一個公鑰屬於某個主機或組織,讓使用者可以信任那個網站的身分。

X.509 是一種國際標準(ITU-T 定義的格式),用來描述「公鑰憑證」的資料結構。而 TLS 就是一種用 X.509 格式建立的公鑰憑證,比如說:

  1. 公鑰(Public Key)
  2. 持有者身分資訊(Subject)
  3. 簽發單位資訊(Issuer)
  4. 有效期限
  5. 簽章(CA 對這張憑證的數位簽章)
  6. 其他延伸欄位(如 SAN:Subject Alternative Name,用來記錄多網域)

簡單說,它是一份「身分證 + 鑰匙 + 簽章」的組合。用一個表格來解釋它:

功能 說明 實際應用
加密 (Encryption) 保護資料不被竊聽 HTTPS、VPN
身分驗證 (Authentication) 確認伺服器或使用者身份 網站信任、企業憑證登入
完整性 (Integrity) 防止資料被竄改 TLS 封包驗證
簽章 (Signing) 驗證軟體/文件真偽 Code Signing、PDF 電子簽名
不可否認性 (Non-repudiation) 證明「當時真的簽過」 時戳、公文簽核

在台灣我們也有一個機構 TWCA,提供的服務包括:頒發憑證、電子簽章、時戳、身分驗證。如果你也打算寫一個自己的網站,可以到這個平台申請 TLS 憑證為你的網頁增添一個官方背書。

🍀 CA 在 PKI 中扮演什麼角色

想像真實世界的身分驗證:你要相信某個人是真正的警察,就會看他有沒有帶警察證。CA 就像發證的機關(警察局),而憑證就是那張警察證,上面寫著「這把公鑰屬於 www.example.com」。

瀏覽器和作業系統內建了一個受信任 root CA 名單(trust store),只要憑證鏈能連回到其中一個 root CA,就被視為「可信」。

PKI(Public Key Infrastructure,公鑰基礎建設) 就是整個 HTTPS、CA、數位簽章、TLS 安全的「地基」。如果說 X.509 憑證是一張「身分證」,那 PKI 就是那整個「發證、驗證、撤銷、保存」的政府系統。

⚙️ 自簽憑證 vs CA 簽發

  • 自簽憑證:自己簽發、沒有第三方保證。瀏覽器會警告「不受信任」除非你手動信任它。適合內部測試或 lab,但不適合公開服務。
  • CA 簽發的憑證:由受信任的 CA 簽發,使用者連線時會被自動信任(前提是憑證沒有過期、被撤銷或其它問題)。

實務上,我們在架網站的時候都會使用 Let’s Encrypt:一個完全免費的 CA,讓任何人都能快速取得受信任憑證,時間到了也可以自動換證。

CA 的私鑰一旦外洩,攻擊者就能簽發看似合法的憑證(非常危險)。這就是為什麼 CA 要受嚴格審核,現代防護也引入了 Certificate Transparency(CT)機制來降低風險。

❓ 什麼是 CT

在 HTTPS 普及之前(大約 2010 年前後),CA(憑證授權中心)幾乎是「黑盒子運作」的。你只能「相信」它真的只發合法的憑證,但實際上使用者無法查到某個網域是不是被多發了憑證、甚至被偽造。

真實案例就是 2011 年 DigiNotar 被駭,詳細來源可看 BBC 新聞網:https://www.bbc.com/news/technology-14989334

荷蘭的 CA「DigiNotar」被入侵後,駭客利用它的私鑰簽發了超過 500 張假憑證,包括:*.google.com*.facebook.com*.yahoo.com 等等。

結果伊朗等地的使用者真的被 MITM 攻擊成功。這件事直接導致 DigiNotar 被 Google、Mozilla、Microsoft 全面撤信。這場災難讓全世界的瀏覽器與安全社群意識到:

「我們需要一個公開透明的機制,讓所有 CA 的簽發行為都能被監督。」

這就是 Certificate Transparency(CT)的起源。每張由 CA 簽發的 SSL/TLS 憑證,都必須登錄到一個「公開的憑證日誌(CT Log)」裡。


至於要怎麼檢查網站的憑證呢?

最簡單的方式就是在瀏覽器 URL 網址列的旁邊有一個鎖頭,點開就可以查看 Certificate,同時查看 Issuer(簽發者)與指紋。

https://ithelp.ithome.com.tw/upload/images/20251006/20176048f4MiBfjwpe.png

📄 參考資料

遠振資訊的文章
digicert 的文章
yumili 的 iThome 文章


上一篇
【Day.21】TLS 攻防觀點:中間人(MITM)原理與防護
下一篇
【Day.23】滲透測試的第三步:Hydra 密碼暴力破解工具!
系列文
從零開始的 Linux 世界24
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言